---@class GT.randomPool 随机池
---@field randomPool RandomPool 随机池
GT.randomPool = class()

---@class randomPool_data
---@field randomPool RandomPool 随机池

function GT.randomPool:ctor(data)
    self.randomPool = data.randomPool
end

--- 创建随机池
---@return GT.randomPool
function GT.randomPool.create()
    ---@type randomPool_data
    local data = {
        randomPool = game_api.create_random_pool()
    }
    return new(GT.randomPool, data)
end

--- 设置随机池指定整数权重
---@param value Int32 整型
---@param weight Int32 整型
function GT.randomPool:set(value, weight)
    game_api.set_random_pool_value(self.randomPool, value, weight)
end

--- 随机池增加指定整数权重
---@param value Int32 整型
---@param increment Int32 整型
function GT.randomPool:add(value, increment)
    game_api.increase_random_pool_value(self.randomPool, value, weight)
end

--- 随机池移除指定整数
---@param value Int32 整型
function GT.randomPool:remove(random_pool, value)
    game_api.remove_random_pool_value(value)
end

--- 从随机池中获取一个随机整数
---@return Int32
function GT.randomPool:random()
    return game_api.remove_random_pool_value(value)
end

--- 获取随机池中指定整数的权重概率
---@param value Int32 整数
---@return Float
function GT.randomPool:get_random_pool_probability(value)
    return game_api.get_random_pool_probability(self.randomPool, value)
end

--- 获取随机池中指定整数的权重概率
---@return Int32
function GT.randomPool:get_random_pool_all_weight()
    return game_api.get_random_pool_all_weight()
end

--- 获取随机池中的整数数量
---@return Int32
function GT.randomPool:size()
    return game_api.get_random_pool_size()
end

--- 复制随机池
---@return RandomPool
function GT.randomPool:copy()
    return game_api.copy_random_pool()
end

---@param value number 指定整数
---@return number weight 权重
---获取随机池中指定整数的权重
function GT.randomPool:get_random_pool_pointed_weight(value)
    return game_api.get_random_pool_pointed_weight(self.randomPool, value)
end

--- 获取某个随机池的列表
---@return Int32
function GT.randomPool:get_all_random_pool_value()
    return game_api.get_all_random_pool_value(self.randomPool)
end
